package in.lib.view; import android.content.Context; import android.text.style.ClickableSpan; import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; import in.lib.view.spannable.NotUnderlinedClickableSpan; import lombok.Setter; public class LinkedAutoCompleteTextView extends AutoSuggestView implements OnLongClickListener, OnClickListener { @Setter private OnSpannableClickedListener onSpannableClickedListener; public static interface OnSpannableClickedListener { public void onSpannableClicked(ClickableSpan spannable); } public LinkedAutoCompleteTextView(Context context, AttributeSet attrs) { super(context, attrs); setOnClickListener(this); } @Override public boolean onLongClick(View v) { NotUnderlinedClickableSpan[] spans = getText().getSpans(getSelectionStart(), getSelectionEnd(), NotUnderlinedClickableSpan.class); if (spans.length == 1) { NotUnderlinedClickableSpan span = spans[0]; span.onLongClick(v); return true; } return false; } @Override public void onClick(View v) { NotUnderlinedClickableSpan[] spans = getText().getSpans(getSelectionStart(), getSelectionEnd(), NotUnderlinedClickableSpan.class); if (spans.length > 0) { NotUnderlinedClickableSpan span = spans[0]; span.onSimpleClick(v); if (onSpannableClickedListener != null) { onSpannableClickedListener.onSpannableClicked(span); } } } }